package com.bone.handler;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.bone.modules.system.entity.SysUser;
import org.apache.catalina.security.SecurityUtil;
import org.apache.ibatis.reflection.MetaObject;
import org.apache.shiro.SecurityUtils;
import org.springframework.stereotype.Component;

import java.util.Date;

/**
  *
  * @author : WangKeKe
  * @date : 2020/8/13 18:11
  * Description : 自动填充处理类
  *
*/

@Component
public class MyMetaObjectHandler implements MetaObjectHandler {

   @Override
   public void insertFill(MetaObject metaObject) {
       SysUser sysUser = (SysUser)SecurityUtils.getSubject().getPrincipal();
       this.setFieldValByName("createBy",sysUser.getUsername(),metaObject);
       this.setFieldValByName("updateBy",sysUser.getUsername(),metaObject);
       this.setFieldValByName("createTime",new Date(),metaObject);
       this.setFieldValByName("updateTime",new Date(),metaObject);
   }

   @Override
   public void updateFill(MetaObject metaObject) {
       SysUser sysUser = (SysUser)SecurityUtils.getSubject().getPrincipal();
       this.setFieldValByName("updateBy",sysUser.getUsername(),metaObject);
       this.setFieldValByName("updateTime",new Date(),metaObject);
   }
}
